Να προσθέσω, ότι η οποιαδήποτε προσπάθεια να παρακαμφθεί το όριο των 10 GB δεν έχει και κανένα απολύτως νόημα από οικονομικής άποψης. Μία ματιά στις
άδειες και θα δούμε ότι μιλάμε για το πως να γλυτώσουμε $700 (όσο κάνει ο SQL Server Workgroup), ξοδεύοντας πολλαπλάσια σε research (γιατί γι αυτό πρόκειται) σε ένα τομέα που ο m6s δεν έχει ξανασυναντήσει - χωρίς να συνυπολογίσουμε το κόστος σε σίδερο, γιατί φυσικά αν βάλεις 2 instances στο ίδιο μηχάνημα, διπλασσιάζεις το φόρτο σε CPU, RAM, κλπ σε σχέση με μία κανονική εγκατάσταση.
Από την άλλη, μπορεί να χρησιμοποιήσει κανείς τεχνικές sharding όταν ΠΡΑΓΜΑΤΙΚΑ χρειάζεται πολλά σχετικά μικρά σίδερα - όπως για παράδειγμα όταν έχει μία φάρμα με game servers. Σε αυτή την περίπτωση με κάποιο τρόπο (π.χ. γεωγραφική κατανομή παικτών) καθορίζεις ότι διαφορετικές συνδέσεις θα καταλήγουν πάντα σε μία απ' όλες τις βάσεις. Προφανώς ούτε το sharding είναι εύκολο, ακόμα και αν χρησιμοποιήσεις κάποιο έτοιμο framework και προϋποθέτει ότι έχεις .... τα χρήματα για το σίδερο και μπορείς να τροποποιήσεις την εφαρμογή σου έτσι ώστε να το χρησιμοποιεί σωστά.
Τέλος, το partitioning που αναφέρθηκε νωρίτερα χρησιμεύει όταν θέλεις να χρησιμοποιήσεις λίγα μεγάλα σίδερα και θέλεις να σπάσεις δεδομένα και queries σε διαφορετικά μηχανήματα αλλά να τα βλέπεις ουσιαστικά ως μία μόνο βάση. Εδώ μιλάμε για καθαρά Enterprise χαρακτηριστικό, το οποίο απαιτεί το κατάλληλο licensing, μεγάλα σίδερα και γρήγορα δίκτυα. Αυτό που κερδίζεις όμως είναι ότι αποφεύγεις τις ρυθμίσεις που απαιτεί το sharding και τις τροποποιήσεις στον κώδικα.
Παναγιώτης Καναβός, Freelancer
Twitter: http://www.twitter.com/pkanavos